using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("ZoneChangeList")]
	public class ZoneChangeList : MonoClass
	{
		public int m_id => method_2<int>("m_id");

		public int m_predictedPosition => method_2<int>("m_predictedPosition");

		public bool m_ignoreCardZoneChanges => method_2<bool>("m_ignoreCardZoneChanges");

		public bool m_canceledChangeList => method_2<bool>("m_canceledChangeList");

		public PowerTaskList m_taskList => method_3<PowerTaskList>("m_taskList");

		public List<ZoneChange> m_changes => method_3<Class271<ZoneChange>>("m_changes")?.method_25();

		public bool m_complete => method_2<bool>("m_complete");

		public object m_completeCallbackUserData => method_3<object>("m_completeCallbackUserData");

		public ZoneChangeList(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ZoneChangeList(IntPtr address)
			: this(address, "ZoneChangeList")
		{
		}

		public int GetId()
		{
			return method_11<int>("GetId", Array.Empty<object>());
		}

		public void SetId(int id)
		{
			method_8("SetId", id);
		}

		public bool IsLocal()
		{
			return method_11<bool>("IsLocal", Array.Empty<object>());
		}

		public int GetPredictedPosition()
		{
			return method_11<int>("GetPredictedPosition", Array.Empty<object>());
		}

		public void SetPredictedPosition(int pos)
		{
			method_8("SetPredictedPosition", pos);
		}

		public void SetIgnoreCardZoneChanges(bool ignore)
		{
			method_8("SetIgnoreCardZoneChanges", ignore);
		}

		public bool IsCanceledChangeList()
		{
			return method_11<bool>("IsCanceledChangeList", Array.Empty<object>());
		}

		public void SetCanceledChangeList(bool canceledChangeList)
		{
			method_8("SetCanceledChangeList", canceledChangeList);
		}

		public void SetZoneInputBlocking(bool block)
		{
			method_8("SetZoneInputBlocking", block);
		}

		public bool IsComplete()
		{
			return method_11<bool>("IsComplete", Array.Empty<object>());
		}

		public object GetCompleteCallbackUserData()
		{
			return method_14<object>("GetCompleteCallbackUserData", Array.Empty<object>());
		}

		public void SetCompleteCallbackUserData(object userData)
		{
			method_8("SetCompleteCallbackUserData", userData);
		}

		public void FireCompleteCallback()
		{
			method_8("FireCompleteCallback");
		}

		public PowerTaskList GetTaskList()
		{
			return method_14<PowerTaskList>("GetTaskList", Array.Empty<object>());
		}

		public void SetTaskList(PowerTaskList taskList)
		{
			method_8("SetTaskList", taskList);
		}

		public List<ZoneChange> GetChanges()
		{
			return method_14<Class271<ZoneChange>>("GetChanges", Array.Empty<object>())?.method_25();
		}

		public ZoneChange GetChange(int index)
		{
			return method_14<ZoneChange>("GetChange", new object[1] { index });
		}

		public ZoneChange GetLocalTriggerChange()
		{
			return method_14<ZoneChange>("GetLocalTriggerChange", Array.Empty<object>());
		}

		public Card GetLocalTriggerCard()
		{
			return method_14<Card>("GetLocalTriggerCard", Array.Empty<object>());
		}

		public void AddChange(ZoneChange change)
		{
			method_8("AddChange", change);
		}

		public void InsertChange(int index, ZoneChange change)
		{
			method_8("InsertChange", index, change);
		}

		public void ClearChanges()
		{
			method_8("ClearChanges");
		}

		public new string ToString()
		{
			return method_13("ToString");
		}

		public bool IsDisplayableDyingSecret(Entity entity, Card card, Zone srcZone, Zone dstZone)
		{
			return method_11<bool>("IsDisplayableDyingSecret", new object[4] { entity, card, srcZone, dstZone });
		}

		public bool IsEntityLoading(Entity entity, Card card)
		{
			return method_11<bool>("IsEntityLoading", new object[2] { entity, card });
		}

		public bool ShouldForceUpdateActor(ZoneChange change)
		{
			return method_11<bool>("ShouldForceUpdateActor", new object[1] { change });
		}

		public bool IsDeathBlock()
		{
			return method_11<bool>("IsDeathBlock", Array.Empty<object>());
		}

		public void OnUpdateLayoutComplete(Zone zone, object userData)
		{
			method_8("OnUpdateLayoutComplete", zone, userData);
		}

		public Entity GetNewHeroPlayedFromPowerTaskList()
		{
			return method_14<Entity>("GetNewHeroPlayedFromPowerTaskList", Array.Empty<object>());
		}

		public void ShowNewHeroStats()
		{
			method_8("ShowNewHeroStats");
		}

		public bool ShouldWaitForOldHero(Entity entity)
		{
			return method_11<bool>("ShouldWaitForOldHero", new object[1] { entity });
		}

		public bool ShouldIgnoreZoneChange(Entity entity)
		{
			return method_11<bool>("ShouldIgnoreZoneChange", new object[1] { entity });
		}

		public bool IsOldHero(Entity entity)
		{
			return method_11<bool>("IsOldHero", new object[1] { entity });
		}

		public void Finish()
		{
			method_8("Finish");
		}
	}
}
